# List 列表
# 1.列表的元素可以是任意类型
data_list_1 = ['Mysql', 'Java', 'Hadoop', 'Python']
data_list_2 = ['Mysql', 'Html', 1, True, ['a', 'b'], ('c', 'd')]
print(data_list_2)

# 2.列表的索引 ：索引从0开始，或者以负索引访问,表示从列表末尾开始访问，从-1开始
data_list_1 = ['Mysql', 'Java', 'Hadoop', 'Python']
print(data_list_1[0])
print(data_list_1[-1])

# 3.可以使用+将多个列表进行连接合并
data_list_1 = ['Mysql', 'Java']
data_list_2 = ['Html', 'Javascript']
data_list_3 = ['Hadoop', 'HBase']
print(data_list_1 + data_list_2 + data_list_3)
print(data_list_1)

# 4.列表是可变的，可以更新列表的元素
data_list_1 = ['Mysql', 'Java', 'Hadoop', 'Python']
data_list_1[1] = 'JAVA'
print(data_list_1)

# 5.列表的操作
# 5.1 修改
data_list_1 = ['Mysql', 'Java', 'Hadoop', 'Python']
data_list_1[1] = 'JAVAAAAAA'
print(data_list_1)
# 5.2 切片
data_list_1 = ['Mysql', 'Java', 'Hadoop', 'Python', 'Linux', 'C', 'CSS']
print(data_list_1[0:3])
print(data_list_1[4:])

# 切片的参数 list[x:y:z] ,其中x指起始索引，y指结束索引，z指步幅
data_list_1 = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
print(data_list_1[0:9:3])
print(data_list_1[::3])

# 5.3 删除，使用del语句，通过索引删除指定元素
data_list_1 = ['Mysql', 'Java', 'Hadoop', 'Python', 'Linux', 'C', 'CSS']
del data_list_1[2]
print(data_list_1)

# 6.列表的内置方法
# 6.1 list.append(),在列表末尾添加元素
data_list_1 = ['Mysql', 'Java', 'Hadoop', 'Python']
data_list_1.append('HBase')
print(data_list_1)

# 6.2 list.insert(index,item),在指定索引添加元素
data_list_1 = ['Mysql', 'Java', 'Hadoop', 'Python']
data_list_1.insert(2, 'HBase')
print(data_list_1)

# 6.3 list.extends(),组合多个列表
data_list_1 = ['Mysql', 'Java', 'Hadoop', 'Python']
data_list_2 = ['HTML', 'C']
data_list_1.extend(data_list_2)
print(data_list_1)

# 6.4 list.remove(item),删除指定元素
data_list_1 = ['Mysql', 'Java', 'Hadoop', 'Python']
data_list_1.remove('Python')
print(data_list_1)


# 6.5 list.pop(),从列表中返回给定索引位置的元素, 然后删除该元素;如果不指定索引 , 则将返回并删除最后一个元素
data_list_1 = ['Mysql', 'Java', 'Hadoop', 'Python']
item = data_list_1.pop(1)
print(item)
print(data_list_1)

# 6.6 list.index(),返回元素的索引
data_list_1 = ['Mysql', 'Java', 'Hadoop', 'Python', 'Linux', 'C', 'CSS']
print(data_list_1.index('C'))

# 6.7 list.copy(),复制列表
data_list_1 = ['Mysql', 'Java', 'Hadoop', 'Python']
data_list_copy = data_list_1.copy()
print(data_list_copy)


# 6.8 list.reverse(),列表元素倒序（会修改原来的列表）
data_list_1 = ['Mysql', 'Java', 'Hadoop', 'Python']
data_list_1.reverse()
print(data_list_1)


# 6.9 list.count(item),计算item元素在列表出现的次数
data_list_1 = ['Mysql', 'Java', 'Hadoop', 'Python','Java','Java','Java','Java']
print(data_list_1.count('Java'))


# 6.10 list.sort(),对列表元素排序（会修改原来的列表）
data_list_1 = ['Mysql', 'Java', 'Hadoop', 'Python']
data_list_1.sort()
print(data_list_1)

# 6.11 list.clear(),清空列表元素
data_list_1 = ['Mysql', 'Java', 'Hadoop', 'Python']
data_list_1.clear()
print(data_list_1)
